#ifndef	POINT_H
#define	POINT_H

#include "Object.h"

/* ----------------------------------------------------------------------------------------------- *
 *	"красивые" константы-указатели на мета-информацию об POINT и POINT_CLASS
 */

extern const void * Point;      // использование: new(Point, x, y);
extern const void * PointClass;	// использование: как Class, добавлен селектор draw

/* ----------------------------------------------------------------------------------------------- *
 *	функции с динамическим связыванием (dynamic linking)
 *	указатели на эти функции используются также как селекторы при заполнении мета-информации
 *		динамическое связывание метода для типа POINT и его наследников
 */

void draw(const void * _pSelf);

/* ----------------------------------------------------------------------------------------------- *
 *	функции со статическим связыванием (static linking)
 */

void move(void * _pPoint, int dx, int dy);

/* ----------------------------------------------------------------------------------------------- *
 *	вспомогательные функции для инициализации мета-информации о типе
 */

void init_PointClass(void);

#endif
